# node读取Excel

通过使用 node-xlsx ,读写Excel

背景:

根据下图,填入字段

1703233233061

需求:

1703233336449

编写脚本:

var fs = require("fs");
var xlsx = require("node-xlsx");
var sheets = xlsx.parse("./t_doctor.xlsx"); // 文件路径

let newData = [];
let rowNum = 0;

// 字典
let mapArr = [
  {
    key: "抑郁",
    value: "11",
  },
  {
    key: "焦虑",
    value: "10",
  },
  {
    key: "睡眠障碍",
    value: "9",
  },
  {
    key: "情感障碍",
    value: "8",
  },
  {
    key: "亲密关系",
    value: "7",
  },
  {
    key: "儿童青少年期",
    value: "6",
  },
  {
    key: "老年期",
    value: "5",
  },
  {
    key: "精神疾病",
    value: "4",
  },
  {
    key: "内科",
    value: "3",
  },
  {
    key: "骨科",
    value: "2",
  },
  {
    key: "妇科",
    value: "1",
  },
];

let sheetResult = sheets[0].data; // 第一个sheet
sheetResult.forEach(function (row) { // 遍历每一行
  let item = row[12];
  if (typeof item === "string") {
    let tags = item.split(",");

    let strList = [];
    tags.forEach((tagItem, index) => {
      console.log(`病情${index + 1}`, tagItem);
      mapArr.find((mapItem) => {
        if (mapItem.key == tagItem) {
          console.log("匹配:", mapItem.value);
          strList.push(mapItem.value);
        }
      });
    });
    let newStr = strList.join(",");
    console.log("写入值:", newStr);
    row[13] = newStr;
    rowNum++;
    newData.push(row);
    console.log("#### end ####\n");
  }
});
console.log("行数:", rowNum);
sheets[0].data = newData; // 获取更改的副本
fs.writeFileSync("./new4.xlsx", xlsx.build(sheets), "binary"); // 新文件路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

匹配值,写入编码:

1703234508046

效果如下:

1703234707757

上次更新: 14 days